// 判断Set中是否包含指定元素
// Set的构造方法，可以传入一个可遍历对象（数组OR伪数组）
let set = new Set(['a','b','c','d','e']);
// let set = new Set("abcde"); // 和上面一行代码效果一样

// 判断set中是否包含'a'元素
console.log(set.has('a')); // true

// 判断set中是否包含'f'元素
console.log(set.has('f')); // false


// 从Set中删除元素：
// 使用delete方法，删除Set中的元素，返回删除是否成功

console.log("-----------delete---------------")
// 删除a元素
console.log(set.delete("a")); // true
console.log(set);

// 再次删除a
console.log(set.delete("a")); // false

// 判断集合中元素是否重复，什么样数据结构的集合是最高效的？

// 平衡二叉树，70亿人，只需要判断7次就可以找到目标
// 链表：从头到尾遍历，效率低但是非常可靠

// 链表 + 红黑树
// 为什会牺牲比较效率而使用比较效率不高的红黑树：
// 维护平衡二叉树的开销非常大，红黑树虽然比较时可能会多比较几次，但是维护时开销小了很多。
// 课外书籍：程序与数据结构（JS，JAVA，C#）